package priv.ln.field_method.exer5;

/**
 * ClassName: Student
 * Package: priv.ln.field_method.exer5
 * Description:
 *案例：
 * 1）定义类Student，包含三个属性：学号number(int)，年级state(int)，成绩score(int)。
 * 2）创建20个学生对象，学号为1到20，年级和成绩都由随机数确定。
 * 问题一：打印出3年级(state值为3）的学生信息。
 * 问题二：使用冒泡排序按学生成绩排序，并遍历所有学生信息
 * 提示：
 * 1) 生成随机数：Math.random()，返回值类型double;
 * 2) 四舍五入取整：Math.round(double d)，返回值类型long。
 * 年级[1,6] : (int)(Math.random() * 6 + 1)
 * 分数[0,100] : (int)(Math.random() * 101)
 * @Author 辣辣
 * @Create 2024/6/20 14:53
 * @Version 1.0
 */
public class Student {
    int number;//学号
    int state;//年级[1,6]
    int score;//成绩[0,100]

    /**
     * 输出指定年级的学生信息
     * @param students,index
     */
    public void printSpecificStudents(Student[] students, int index){
        for (int i = 0; i < students.length; i++) {
            if(students[i].state == index){
                System.out.println("学号：" + students[i].number + " 年级："
                        + students[i].state + " 成绩：" + students[i].score);
            }
        }
    }

    /**
     * 根据成绩排序
     * @param students
     */
    public void sortStudentsByScore(Student[] students){
        for (int i = 0; i < students.length - 1; i++) {
            for (int j = 0; j < students.length - 1 - i; j++) {
                if(students[j].score < students[j + 1].score){
                    Student temp = students[j];
                    students[j] = students[j + 1];
                    students[j + 1] = temp;
                }
            }
        }
    }

    /**
     * 打印学生信息
     * @param students
     */
    public void printStudents(Student[] students){
        for (int i = 0; i < students.length; i++) {
            System.out.println("学号：" + students[i].number + " 年级："
                    + students[i].state + " 成绩：" + students[i].score);
        }
    }
}
